More Related Content
Similar to Von neumann architecture
Similar to Von neumann architecture (20)
Von neumann architecture
- 1. von Neumann architecture สถาปัตยกรรมฟอนนอยมันน์ นางสาว วิภาวี ขวัญเมือง ม .4/1 เลขที่ 10
- 2. จอห์น ฟอน นอยมันน์ เป็นนักคณิตศาสตร์ชาวอเมริกันเชื้อสายฮังการี มีผลงานสำคัญในหลายสาขา ทั้ง ควอนตัมฟิสิกส์ ทฤษฎีเซต วิทยาการคอมพิวเตอร์ เศรษฐศาสตร์ และ จะว่าไปแล้วก็ทุกๆ สาขาในวิชาคณิตศาสตร์ เลยก็ว่าได้ เขาเป็นบุตรชายคนโต ในพี่น้อง 3 คน ชื่อเดิมของนอยมันน์ คือ János Lajos Margittai Neumann เกิดที่เมืองบูดาเปส บิดาคือ Neumann Miksa ( Max Neumann ) เป็นนักการธนาคาร และ มารดาคือ Kann Margit ( Margaret Kann ) นอยมันน์มีชื่อเล่น ว่า " Jancsi " เขาเติบโตมาในครอบครัวชาวยิวที่ไม่เคร่งครัด และได้แสดงถึงความจำที่เป็นเลิศ มาตั้งแต่ยังเป็นเด็ก โดยสามารถทำการหารเลข 8 หลักในใจได้ตอนอายุ 6 ปี . ในปี ค . ศ . 1911 ก็เข้าเรียนที่ Lutheran Gymnasium ( ในประเทศเยอรมนี , gymnasium หมายถึง โรงเรียนมัธยมปลาย ) พอปี ค . ศ . 1913 เนื่องจากคุณพ่อของเขาได้รับตำแหน่ง ( ยศ ) เขาจึงได้รับชื่อในภาษาเยอรมัน von จึงใช้ชื่อเต็มเป็น János von Neumann
- 3. เขาเรียนจบปริญญาเอกสาขาคณิตศาสตร์ จาก มหาวิทยาลัยบูดาเปส ประเทศฮังการี ตอนอายุ 23 ปี ระหว่างปี ค . ศ . 1926 ถึง 1930 เขาทำงานเป็น " อาจารย์อิสระ " (" Privatdozent " เป็นตำแหน่งในระบบมหาวิทยาลัยยุโรป สำหรับผู้ที่ต้องการจะเป็นศาสตราจารย์มหาวิทยาลัย ตำแหน่งนี้ไม่มีเงินเดือนประจำ ) โดยในขณะนั้นเขาเป็นอาจารย์อิสระที่อายุน้อยที่สุดมหาวิทยาลัยเบอร์ลิน ประเทศเยอรมนี ในปี ค . ศ . 1930 นอยมันน์ได้รับเชิญให้ไปยังเมืองพรินซ์ตัน , มลรัฐนิวเจอร์ซี และได้เป็นหนึ่งในหกบุคคล ( J . W . Alexander, อัลเบิร์ต ไอน์สไตน์ , Marston Morse, Oswald Veblen, จอห์น ฟอน นอยมันน์ และ Hermann Weyl ) ที่ถูกคัดเลือกเพื่อเป็นอาจารย์ประจำชุดแรกของ Institute for Advanced Study เขาเป็นศาสตราจารย์คณิตศาสตร์ที่นั่น ตั้งแต่เริ่มก่อตั้งสาขาวิชาในปี ค . ศ . 1933 จนกระทั่งวาระสุดท้ายของชีวิตเขา . ในช่วงสงครามโลกครั้งที่สอง นอยมันน์ได้มีส่วนร่วมใน โครงการแมนฮัตตัน ( Manhattan Project ) ซึ่งเป็นโครงการสร้างระเบิดปรมาณู ช่วง ค . ศ . 1936 จนถึง 1938 แอลัน ทัวริง ได้เป็นนักเรียนแลกเปลี่ยนไปที่สถาบัน และเรียนจบปริญญาเอก โดยมีนอยมันน์เป็นอาจารย์ที่ปรึกษา การไปเป็นนักเรียนแลกเปลี่ยนครั้งนี้ของทัวริง เกิดขึ้นหลักจากที่เขาได้ดีพิมพ์บทความวิชาการ
- 4. " On Computable Numbers with an Application to the Entscheidungs - problem " ในปี ค . ศ . 1934 ได้ไม่นาน . งานตีพิมพ์นี้ เกี่ยวข้องกับ หลักการของ logical design และ universal machine . ถึงแม้จะเป็นที่แน่ชัดว่า นอยแมนรู้ถึงแนวความคิดของทัวริง แต่ก็ไม่เป็นที่แน่ชัดว่า เขาได้ใช้หลักการของทัวริง ในการออกแบบเครื่อง IAS ที่ถูกสร้างในเวลา 10 ปีต่อมา นอยมันน์นั้น ได้รับการขนานนามว่าเป็น บิดาของทฤษฎีเกม ( game theory ). เขาได้ตีพิมพ์หนังสือ Theory of Games and Economic Behavior โดยร่วมเขียนกับ Oskar Morgenstern ในปี ค . ศ . 1944 เขาได้คิดหลักการ " MAD " ( mutually assured destruction ) อาจแปลไทยได้เป็น " รับรองได้ว่าเจ๊งไปด้วยกันทั้งคู่แน่ " ซึ่งเป็นหลักการซึ่งใช้เป็นหลักสำคัญ ในการวางแผนกลยุทธ์ทางด้านอาวุธนิวเคลียร์ของอเมริกา ในช่วงสงครามเย็น นอยมันน์เป็นคนคิด สถาปัตยกรรมแบบ ฟอน นอยมันน์ ซึ่งใช้กันในคอมพิวเตอร์ ( แบบที่ไม่ได้ประมวลผลแบบขนาน ) ส่วนใหญ่ พูดได้ว่า คอมพิวเตอร์เกือบทั้งหมดในโลกนี้ เป็น เครื่องจักรแบบ ฟอน นอยมันน์ เขาเป็นผู้ริเริ่มสาขา cellular automata และได้สร้างตัวอย่างชุดแรกของ self - replicating automata โดยใช้แค่กระดาษกราฟ กับ ดินสอธรรมดาๆ ( ไม่มีคอมพิวเตอร์ช่วยเลย ) คำว่า เครื่องจักรแบบ ฟอน นอยมันน์ ยังหมายความถึง เครื่องจักรที่สร้างตนเองซ้ำได้ ( self - replicating machine )
- 5. นอยมันน์ได้พิสูจน์ว่า การใช้เครื่องจักรที่สร้างตนเองซ้ำได้ เป็นวิธีที่มีประสิทธิภาพที่สุด ในการทำเหมืองขนาดใหญ่มากๆ อย่างการทำเหมืองบนดวงจันทร์ หรือ แถบดาวเคราะห์น้อย เนื่องจากกลไกแบบนี้จะมีการเติบโตเป็นแบบเลขชี้กำลัง นอยมันน์นับเป็นบุคคลที่ฉลาดล้ำลึก และความจำที่เป็นเลิศเกือบจะเรียกได้ว่า จำได้ทุกอย่าง ในระดับรายละเอียดเลยก็ว่าได้ เขาเป็นคนชอบออกสังคมไม่เก็บตัว ชอบดื่มเหล้า เต้นรำ และ การเริงรมย์ เป็นคนสนุกสนาน และขบขัน เสียชีวิตที่กรุงวอชิงตัน ดี . ซี . จาก การโปรแกรมเชิงเส้น ที่เขียนโดย George B . Dantzig ซึ่งเป็นผู้ที่คิดค้น simplex method ที่ใช้แก้ปัญหาการโปรแกรมเชิงเส้น เขาได้เขียนถึงนอยมันน์ จากประสบการณ์ที่ได้ไปพบและขอคำแนะนำจากนอยมันน์ และยังได้สะท้อนถึงบุคคลิกของนอยมันน์ และได้เล่าถึงตอนที่นอยมันน์ได้ช่วยเหลือ โดยการตอบคำถามของ Hotelling ( ผู้คิดค้น Principal components analysis ) ระหว่างการนำเสนอผลงานการโปรแกรมเชิงเส้นของเขา
- 6. สถาปัตยกรรมแรกเริ่มที่เรียกว่า ฟอนนอยมันน์ (von Neumann Architecture) คิดค้นโดยจอหน์ ฟอน นอยมันน์ (John von Neumann) ที่ครั้งแรกออกแบบตามแนวความคิดให้เป็นเครื่องจัดเก็บโปรแกรม (Stored-program Concept) มาตั้งแต่ปี พ . ศ . 2488 เรียกชื่อเครื่องนี้ว่า IAS ถึงแม้ว่าต่อมาอีกหลายปีจึงสร้างจริงได้สำเร็จ แต่ก็นับได้ว่าเป็นเครื่องคอมพิวเตอร์ที่มีสถาปัตยกรรมต้นแบบที่ควรเริ่มต้นศึกษา โครงสร้างหลักทั่วไปของเครื่องคอมพิวเตอร์ IAS von Neumann Architecture
- 7. โครงสร้างหลักทั่วไปของเครื่อง IAS ประกอบด้วย - หน่วยความจำหลัก (Main Memory) ทำหน้าที่จัดเก็บข้อมูลและโปรแกรม - หน่วยคำนวณและตรรกะ (ALU : Arithmetic and Logic Unit) ทำหน้าที่ดำเนินการกับข้อมูลเลขฐานสอง - หน่วยควบคุม (Control Unit) ทำหน้าที่แปลคำสั่งภาษาเครื่อง (Instructions) ที่จัดเก็บใน -- หน่วยความจำหลักเพื่อให้สั่งกระทำการ (Execute) ต่อไป - หน่วยข้อมูลรับเข้า - ส่งออก (Input/Output Unit) ทำหน้าที่แปลงสัญญาณและการแทนค่าข้อมูลที่รับเข้า - ส่งออกตามที่หน่วยควบคุมสั่งการ
- 8. [ พ . ศ . 2492 ] ดร . จอห์น ฟอน นิวแมนน์ ( Dr . John Von Neumann ) ได้สร้างเครื่องคอมพิวเตอร์ที่สามารถเก็บคำสั่งการปฏิบัติงานทั้งหมดไว้ภายในเครื่อง ชื่อว่า EDVAC นับเป็นคอมพิวเตอร์เครี่องแรกที่สามารถเก็บโปรแกรม ไว้ในเครื่องได้
- 9. หน่วยความจำหลักมีขนาด 1 ,000 คำ (Words) แต่ละคำมีความยาว 40 บิตใช้เก็บได้ทั้งข้อมูลหรือคำสั่ง หากจัดเก็บข้อมูลตัวเลขจะใช้เลขฐานสองระบบการแทนค่าแบบมีบิตเครื่องหมาย หากแทนคำสั่งภาษาเครื่องจะยาวสองคำสั่ง แต่ละคำสั่งยาว 20 บิต โดยที่ส่วนแรก 8 บิตเป็นรหัสดำเนินการ (Operation Code or Op Code) อีก 12 บิตเป็นค่าเลขที่อยู่ของตัวถูกดำเนินการ (Operand) หน่วยควบคุมจะสั่งการให้มีการอ่านคำสั่งภาษาเครื่องมาจากหน่วยความจำหลัก เพื่อแปลและสั่งทำงาน เช่นเดียวกันกับหน่วยคำนวณและตรรกะ ทั้งสองหน่วยนี้จะต้องอาศัยเรจิสเตอร์จำนวนหนึ่งในการปฏิบัติงาน
- 11. - เรจิสเตอร์พักความจำ (MBR : Memory Buffer Register) ยาวขนาดหนึ่งคำ ทำหน้าที่จัดเก็บ พักข้อมูลที่จะนำเข้า - ออกจากหน่วยความจำหลัก - เรจิสเตอร์เลขที่อยู่ความจำ (MAR : Memory Address Register) ทำหน้าที่จัดเก็บค่าเลขที่อยู่ของหน่วยความจำหลักที่จะทำการอ่าน - เขียนทุกครั้ง - เรจิสเตอร์คำสั่ง (IR : Instruction Register) ขนาดยาว 8 บิต ทำหน้าที่จัดเก็บรหัสดำเนินการที่กำลังสั่งการในขณะนั้น - เรจิสเตอร์พักคำสั่ง (IBR : Instruction Buffer Register) เป็นที่พักคำสั่งทางขวาชั่วคราวระหว่างที่รอการสั่งทำงานต่อไป - ตัวนับโปรแกรม (PC : Program Counter) เป็นเรจิสเตอร์ทำหน้าที่จัดเก็บค่าเลขที่อยู่ของคำสั่งคู่ลำดับต่อไปที่จะอ่านมาจากหน่วยความจำหลัก - ตัวสะสมและตัวคูณกับผลหาร (AC : Accumulator and MQ : Multiplier Quotient) ตัวสะสมเป็นเรจิสเตอร์ทำหน้าที่เป็นที่พักข้อมูลตัวเลขทุกครั้งที่จะมีการคำนวณในหน่วยคำนวณและตรรกะ ส่วนตัวคูณกับผลหารเป็นเรจิสเตอร์ทำหน้าที่ร่วมกับตัวสะสม เพื่อจัดเก็บผลลัพธ์ในการคูณหรือหาร เนื่องจากตัวสะสมเพียงตัวเดียว มีความยาวไม่เพียงพอที่จะจัดเก็บผลลัพธ์จากการคูณหรือหารได้ทั้งหมด และเมื่อการคำนวณเสร็จสิ้นแล้ว ก่อนที่จะมีการนำข้อมูลผลลัพธ์นั้นไปจัดเก็บในหน่วยความจำหลักที่หน่วยอื่นต่อไปได้นั้น ก็ต้องพักข้อมูลดังกล่าวไว้ชั่วคราวที่นี่เช่นกัน
- 12. เครื่อง IAS ทำงานตามวัฏจักรคำสั่ง (Instruction Cycle) ที่แบ่งเป็นสองช่วง ช่วงแรกเรียกว่า รอบไปนำคำสั่งมา (Fetch Cycle) เริ่มจากการนำรหัสดำเนินการของคำสั่งจะถูกนำไปไว้ที่เรจิสเตอร์คำสั่ง โดยส่วนของตัวถูกดำเนินการจะส่งไปที่เรจิสเตอร์เลขที่อยู่ความจำ เมื่อหน่วยความจำหลักได้รับสัญญาณควบคุม (Control Signal) จากหน่วยควบคุมสั่งให้อ่าน คำที่อ่านมาได้นั้นจะส่งไปพักก่อนที่เรจิสเตอร์พักความจำ แล้วจึงส่งต่อไปที่เรจิสเตอร์พักคำสั่งเป็นอันสิ้นสุดช่วงแรก เนื่องจากสถาปัตยกรรมนี้มีเรจิสเตอร์เพียงตัวเดียวทำหน้าที่ในการกำหนดเลขที่อยู่ในการอ่าน - เขียนหน่วยความจำหลัก และตัวเดียวที่จะเก็บพักข้อมูลนั้น ทำให้เกิดการรอคอยและล่าช้าได้ ช่วงที่สองเรียกว่า รอบการกระทำการ (Execution Cycle) วงจรในส่วนของหน่วยควบคุมเมื่อแปลรหัสดำเนินการได้แล้ว จะปล่อยสัญญาณควบคุมไปสั่งการยังหน่วยต่างๆ อาจเป็นการสั่งให้หน่วยคำนวณและตรรกะทำงาน หรือหน่วยความจำหลักทำงานตามความหมายของรหัสดำเนินการที่แปลได้นั้นต่อไป โดยเมื่อจบสิ้นสุกคำสั่งหนึ่งๆ แล้ว ค่าเลขที่อยู่ของคำสั่งถัดไปจะถูกกำหนดไว้ที่ตัวนับโปรแกรมเสมอ คำสั่งภาษาเครื่องของ IAS ใช้ความยาวขนาด 8 บิตในการแทนค่า จัดแบ่งคำสั่งออกเป็นหลายกลุ่ม
- 14. ได้แก่ - กลุ่มคำสั่งถ่ายโอนข้อมูล (Data Transfer) เป็นคำสั่งที่ให้มีการถ่ายโอนข้อมูลระหว่างหน่วยความจำหลักกับหน่วยคำนวณและตรรกะ หรือระหว่างเรจิสเตอร์ของหน่วยคำนวณและตรรกะเอง - กลุ่มคำสั่งแยกทางอย่างไม่มีเงื่อนไข (Unconditional Branch) เป็นคำสั่งเปลี่ยนแปลงค่าในตัวนับโปรแกรมไม่ให้ทำงานตามลำดับ แต่ให้กระโดดไปยังเลขที่อยู่อื่นตามที่คำสั่งนั้นสั่งการในทันที - กลุ่มคำสั่งแยกทางตามเงื่อนไข (Conditional Branch) เป็นคำสั่งให้ทำการตรวจสอบเงื่อนไขที่กำหนดไว้เสียก่อน ว่ามีค่าเป็นจริงหรือเท็จ แล้วจึงดำเนินการต่อไปได้ - กลุ่มคำสั่งคำนวณทางเลขคณิต (Arithmetic) เป็นคำสั่งให้ดำเนินการทางเลขคณิตโดยหน่วยคำนวณและตรรกะ - กลุ่มคำสั่งปรับปรุงเลขที่อยู่ (Address Modify) เป็นคำสั่งอนุญาตให้หน่วยคำนวณและตรรกะ สามารถนำค่าเลขที่อยู่ของคำสั่งไปเปลี่ยนแปลงค่าใหม่ ก่อนนำไปรวมกับตัวคำสั่งแล้วเก็บในหน่วยความจำได้ เพื่อให้เกิดความยืดหยุ่นในการกำหนดเลขที่อยู่ของโปรแกรม